package com.whmall.service.crm.api;

import com.whmall.component.entity.dto.PageReqDTO;
import com.whmall.component.entity.dto.PageRspDTO;
import com.whmall.service.crm.entity.dto.invoice.SubstituteInvoiceCompanyAddReqDTO;
import com.whmall.service.crm.entity.dto.invoice.SubstituteInvoiceCompanyQueryReqDTO;
import com.whmall.service.crm.entity.dto.invoice.SubstituteInvoiceCompanyQueryRspDTO;
import com.whmall.service.crm.entity.dto.invoice.SubstituteInvoiceCompanyUpdateReqDTO;

import java.util.List;

/**
 * 代开发票公司API
 */
public interface SubstituteInvoiceCompanyApi {

    /**
     * 查询代开发票公司
     * @param reqDTO
     * @return
     */
    List<SubstituteInvoiceCompanyQueryRspDTO> query(SubstituteInvoiceCompanyQueryReqDTO reqDTO);

    /**
     * 查询代开发票公司 （分页）
     * @param reqDTO
     * @param pageReqDTO
     * @return
     */
    PageRspDTO<SubstituteInvoiceCompanyQueryRspDTO> queryPage(SubstituteInvoiceCompanyQueryReqDTO reqDTO, PageReqDTO pageReqDTO);

    /**
     * 新建代开发票公司
     *
     * @param reqDTO     创建代开发票公司数据DTO
     * @return 返回新创建公司IDSubstituteInvoiceCompanyAddReqDTO
     */
    Long create(SubstituteInvoiceCompanyAddReqDTO reqDTO);

    /**
     * 编辑代开发票公司
     *
     * @param reqDTO     编辑公司数据DTO
     * @return 返回编辑代开发票公司ID
     */
    void update(SubstituteInvoiceCompanyUpdateReqDTO reqDTO);

    /**
     * 启用代开发票公司
     * @param id            代开发票公司id
     * @param employeeId    操作人
     */
    void enable(Long id, Long employeeId);

}
